// SPDX-FileCopyrightText: 2024 KylinSoft Co., Ltd.
//
// SPDX-License-Identifier: GPL-1.0-or-later

#pragma once

#include "ukuishell.h"

#include <QtWaylandClient/private/qwaylandshellintegration_p.h>

namespace QtWaylandClient
{

class UkuiShellIntegration : public QWaylandShellIntegration
{
public:
    UkuiShellIntegration() = default;
    bool initialize(QWaylandDisplay *display) override;
    QWaylandShellSurface *createShellSurface(QWaylandWindow *window) override;

    void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) override;

private:
    std::unique_ptr<UkuiShell> m_ukuiShell;
    std::unordered_map<QWindow *, UkuiShellSurface *> m_shellSurfaces;
};

} // namespace QtWaylandClient
